package services;


import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import database.*;
import mapping.Utilisateur;

public class UtilisateurService {
	
	public UtilisateurService() {

	}

	// Verification Login
	public Utilisateur logginUser(String _email, String _motpasse) {
		DbManager connect = new DbManager();
		Connection conn = null;
		conn = connect.Open_ConnectDB();
		DbProcess process = new DbProcess();
		Query queryString = new Query();
		String[] table = { "Utilisateur" };
		String[] fields = { "id_utilisateur,nom_prenoms_utilisateur,email_utilisateur,mot_passe_utilisateur" };
		String condition = "email_utilisateur= '" + _email + "' AND mot_passe_utilisateur = '"
				+ _motpasse + "'";
		String t = queryString.Query_Select(table, fields, condition);
		System.out.println(t);
		Utilisateur user = new Utilisateur();
		try {
			ResultSet result  = process.Get_DB(conn, t);
			if(result!=null){
				while (result.next()) {
					user.setIdUtilisateur(result.getInt(1));
					user.setNomPrenomsUtilisateur(result.getString(2));
					user.setEmailUtilisateur(result.getString(3));
					user.setMotPasseUtilisateur(result.getString(4));
				}	
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
						e.printStackTrace();
		}
		return user;
	}
        
        // Ajout user
        public int addUser(Utilisateur user) {
                int result=0;
                if(!searchUser(user.getEmailUtilisateur())){
                DbManager connect = new DbManager();
		Connection conn = null;
		conn = connect.Open_ConnectDB();
		DbProcess process = new DbProcess();
		Query queryString = new Query();
		String table = "Utilisateur";
		String[] fields = {"nom_prenoms_utilisateur","email_utilisateur","mot_passe_utilisateur"};
		String[] value = { user.getNomPrenomsUtilisateur(), user.getEmailUtilisateur(), user.getMotPasseUtilisateur() };
		
                String t = queryString.Query_Insert(table, fields, value);
                System.out.println(t);
		if (process.Execute_DB(conn, t))
                {System.out.println("Ok!"); result=1;}
		connect.Close_ConnectDB(conn);
                }
                else{
                 result=2;
                }
                return result;
	}
        
        // Recherche user
        public boolean searchUser(String _email) {
		DbManager connect = new DbManager();
		Connection conn = null;
		conn = connect.Open_ConnectDB();
		DbProcess process = new DbProcess();
		Query queryString = new Query();
		String[] table = { "Utilisateur" };
		String[] fields = { "id_utilisateur,nom_prenoms_utilisateur,email_utilisateur,mot_passe_utilisateur" };
		String condition = "email_utilisateur= '" + _email + "'";
		String t = queryString.Query_Select(table, fields, condition);
		System.out.println(t);
		boolean resul =false;
		try {
			ResultSet result  = process.Get_DB(conn, t);
                        // 
			if(result!=null){
                            while(result.next()){
                            resul =true;
                            }
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
						e.printStackTrace();
		}
		return resul;
	}
}